/*
 * 文件名：NoticeInfoDao.java
 * 版权：Copyright by www.huawei.com
 * 描述：
 * 修改人：Administrator
 * 修改时间：2016年3月29日
 * 跟踪单号：
 * 修改单号：
 * 修改内容：
 */

package com.zcsy.manage.persistence.news;

import java.util.List;
import java.util.Map;

import com.zcsy.manage.model.news.NoticeInfo;

/**
 * @Title: NoticeInfoDao.java
 * @Package： com.zcsy.manage.persistence.base 
 * @Description: 通知信息管理Dao层
 *
 * @author liuying 1075817474@qq.com
 * @Copyright: 2015 武汉中财数元信息技术有限公司 All rights reserved.
 * @date 2016年3月29日
 * @version 1.0
 * @see JDK1.7.0_75
 * @since
 */
public interface NoticeInfoDao {
	
	/**
	 * @Description 插入通知信息<br>
	 * 
	 * @param noticeInfo 通知信息对象
	 * @return 1：插入成功;0：插入失败
	 * @author liuying 1075817474@qq.com
	 * @date 2016年3月29日
	 * @see 
	 */
	int insert(NoticeInfo noticeInfo);
	
	/**
	 * @Description 更新通知信息<br>
	 * 
	 * @param noticeInfo 通知信息对象
	 * @return 1：更新成功;0：更新失败
	 * @author liuying 1075817474@qq.com
	 * @date 2016年3月29日
	 * @see 
	 */
	int updateByPrimaryKey(NoticeInfo noticeInfo);
	
	/**
	 * @Description 根据主键删除通知信息<br>
	 * 
	 * @param id 主键id
	 * @return 1：删除成功;0：删除失败
	 * @author liuying 1075817474@qq.com
	 * @date 2016年3月29日
	 * @see 
	 */
	int deleteByPrimaryKey(String id);
	
	/**
	 * @Description 根据主键获取通知信息详情<br>
	 * 
	 * @param id 主键id
	 * @return 通知信息对象
	 * @author liuying 1075817474@qq.com
	 * @date 2016年3月29日
	 * @see 
	 */
	NoticeInfo selectByPrimaryKey(String id);
	
	/**
	 * @Description 根据小区id获取通知信息列表<br>
	 * 
	 * @param cellId 小区id(为空则面向平台)
	 * @return 通知信息对象列表
	 * @author liuying 1075817474@qq.com
	 * @date 2016年3月29日
	 * @see 
	 */
	List<NoticeInfo> selectByKeyword(NoticeInfo noticeInfo);
	
	/**
     * @Description 根据noticeInfo对象获取通知信息列表及平台消息通知<br>
     * @param String cellId,String userId
     * @return 通知信息对象列表
     * @author yangfan 373188993@qq.com
     * @date 2016年6月27日
     * @see 
     */
    List<NoticeInfo> getNoticeInfoList(Map map);
	
	/**
	 * @Description 根据userId查出的小区通知列表（包含每个通知的阅读次数）
	 * @param userId 用户id
	 * @return 通知信息对象列表
	 * @author liuying 1075817474@qq.com
	 * @date 2016年5月26日
	 * @see 
	 */
	List<NoticeInfo> selectCountList(String userId,String cellId);
	
	/**
	 * @Description 根据用户id和小区id查询未读通知条数
	 * @param userId 用户id
	 * @param cellId 小区id
	 * @return 未读条数
	 * @author liuying 1075817474@qq.com
	 * @date 2016年6月3日
	 * @see 
	 */
	int selectUnreadCount(Map map);
	
	/**
	 * @Description 将选中项置顶
	 * 
	 * @param noticeInfo 通知对象
	 * @return 1：成功 0：失败
	 * @author liuying 1075817474@qq.com
	 * @date 2016年6月12日
	 * @see 
	 */
	int updateSort(NoticeInfo noticeInfo);
	
	/**
	 * @Description 获取最新5条资讯<br>
	 * 
	 * @param cellId 小区id
	 * @return 返回最新5条资讯
	 * @author caiyinli 13277030520@163.com
	 * @date 2016年6月30日
	 * @see 
	 */
	List<NoticeInfo> getNewNoticeList(String cellId, Integer limit);
	
	/**
	 * @Description 获取当前小区通知显示的id列表
	 * @param cellId 小区id
	 * @return 小区通知id列表
	 * @author liuying 1075817474@qq.com
	 * @date 2016年8月8日
	 * @see 
	 */
	List<String> selectIdList(String cellId);

	/**
	 * @Description 将小区通知阅读次数加一
	 * @param id 主键id
	 * @return 更新结果
	 * @author liuying 1075817474@qq.com
	 * @date 2016年9月23日
	 * @see 
	 */
	Integer updateReadCount(String id);
}
